package com.coocaa.ops.admin.v1.auth.sys.service;

import com.coocaa.ops.admin.v1.auth.sys.model.query.SysUserModel;
import com.coocaa.ops.common.core.biz.auth.entity.SysUserEntity;

import java.util.List;
import java.util.Map;

/**
 * @author bijiahao
 * @date : 2019/3/11.
 * @description: 系统用户 service接口
 *
 */
public interface ISysUserService {
    /**
     * 获取用户没有的角色列表
     *
     * @param userId
     * @return
     */
    Map getNotRolesByUserId(Integer userId);

    /**
     * 获取用户已有的角色列表
     *
     * @param userId
     * @return
     */
    Map getRolesByUserId(Integer userId);

    /**
     * 获取用户已有的业务分类
     *
     * @param userId
     * @return
     */
    Map getDictCheckedByUserId(Integer userId);

    /**
     * 保存更新用户角色
     *
     * @param roleIds
     * @param userId
     */
    void saveUserRoles(Integer[] roleIds, Integer userId);

    /**
     * 设置数据权限保存
     */
    void saveProfession(List<Integer> dicts, Integer userId);

    /**
     * 更新密码
     *
     * @param oldPassword
     * @param newPassword
     */
    Map updatePassword(String oldPassword, SysUserEntity user, String newPassword, String newPassword2) throws Exception;

    /**
     * 保存
     *
     * @param entity
     * @param userId
     */
    void save(SysUserEntity entity, Integer userId) throws Exception;


    /**
     * 获取详情信息
     *
     * @param id
     * @return
     */
    SysUserEntity getDetailInfo(Integer id);

    /**
     * 获取分页数据
     *
     * @param model
     * @return
     */
    Map<String, Object> getPageResult(SysUserModel model);

    /**
     * 批量删除
     *
     * @param ids
     * @param user
     * @return
     */
    Map deleteBatch(Integer[] ids, SysUserEntity user);

}
